A Denial of Service Attack on the Java Bytecode Verifier∗
نویسندگان
چکیده
Java Bytecode Verification was so far mostly approached from a correctness perspective. Security vulnerabilities have been found repeatedly and were corrected shortly thereafter. However, correctness is not the only potential point of failure in the verifier idea. In this paper we construct Java code, which is correct, but requires an excessive amount of time to prove safety. In contrast to previous flaws in the bytecode verifier, the enabling property for this exploit lies in the verification algorithm itself and not in the implementation and is thus not easily fixable. We explain how this architectural weakness could be exploited for denialof-service attacks on JVM-based services and devices.
منابع مشابه
Proofing: An Efficient and Safe Alternative to Mobile-Code Verification
The safety of the Java Virtual Machine is founded on bytecode verification. Although verification complexity appears to roughly correlate with program size in the average case, its worst-case behavior is quadratic. This can be exploited for denial-of-service attacks using relatively short programs (applets or agents) specifically crafted to keep the receiving virtual machine’s verifier busy for...
متن کاملJava access protection through typing
We propose integrating field access in general, and dedicated readonly field access in particular, into the Java type system. The principal gain is that “getter” methods can be eliminated such that – fast static lookup can be used instead of dynamic dispatch for field access (without requiring a sophisticated inlining analyses), – the (noticeable) space required by getter methods is avoided, – ...
متن کاملModeling the Java Bytecode Verifier
The Java programming language has been widely described as secure by design. Nevertheless, a number of serious security vulnerabilities have been discovered in Java, particularly in the Bytecode Verifier, a critical component used to verify class semantics before loading is complete. This paper describes a method for representing Java security constraints using the Alloy modeling language. It f...
متن کاملFull Memory Read Attack on a Java Card
We present a simple attack on a Java Card smart card to perform arbitrary memory reads. The attack utilises a known technique of type confusion of the card’s Java Virtual Machine by exploiting the faulty transaction mechanism implementation. The type confusion attack lets us access the application’s private meta-data, reverse engineer it, and in turn get full read and write access to arbitrary ...
متن کاملHF-Blocker: Detection of Distributed Denial of Service Attacks Based On Botnets
Abstract—Today, botnets have become a serious threat to enterprise networks. By creation of network of bots, they launch several attacks, distributed denial of service attacks (DDoS) on networks is a sample of such attacks. Such attacks with the occupation of system resources, have proven to be an effective method of denying network services. Botnets that launch HTTP packet flood attacks agains...
متن کامل